0

やのよう"1234.123456"な文字列を変換する方法を知りたいです。少なくとも3桁の精度が必要です(つまり、小数点の前の桁数に関係なく、小数点以下3桁)。doublefloat

4

2 に答える 2

6

正確な値 1234.123456 は、通常のマシン浮動小数点形式では表現できません。できることは、必要な精度を選択して使用することだけです。(最近のほとんどのマシンでdoubleは、16 桁の精度があります。ただし、16 桁の値がすべて正確に表現できるわけではありません。)

変換に関しては、任意の型を変換するために行うことを行うだけです。

std::istringstream s( "1234.123456" );
double d;
s >> d;

http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.htmlを読んでください 。マシン浮動小数点を安全に使用するために知っておく必要がある基本的な最小値について説明します。

于 2012-08-14T08:56:23.397 に答える
0
#include<stdlib.h> 

int main()
{
    double dnum = atof( "1234.123456" ) ;

    printf ( "%f\n" , dnum ) ;

    return 0 ;
} 
于 2012-08-14T08:58:26.600 に答える