0

数値の最後の浮動小数点桁を出力する簡単な方法を見つけています。For EG : 33.44 ans - 4 .

しかし、私はJAVA簡単にそれを管理しましたが、私はC/C++初心者です.コードのSSCCE JAVA

import java.util.Scanner;

 public class Test{
 public static void main(String[] args){
 Scanner scan=new Scanner(System.in);
    Float f;
    f=scan.nextFloat();
    System.out.println(f);
    String g=f.toString(f);
    System.out.println(g.charAt(g.length()-1));
 }
}

私はそれがそれほど簡単なことではないと思いますC/C++。ロジック/ソリューションはありますか?

4

4 に答える 4

2

浮動小数点数の公称値が整数でない場合、小数部分が0.5、0.25、または 0.75 と正確に等しくない限り、小数部分の正確な値は常に 125、375、625、または 875 で終わります。多くの場合、小数部の正確な公称値に実際に関心があるのではなく、丸められた 10 進数表現に関心があります。その場合、「最後の」桁の値は、報告された値が数値の正確な公称値とどの程度異なるかによって異なります (たとえば1.0f / 10.0ffloatその公称値は正確に 1,342,173/13,421,728、つまり 0.100000001490116119384765625 です。正確な公称値の最後の桁は 625 ですが、この数値は 0.1、または 0.1000000015、0.10000000149、0.10000000149012 などと解釈されることもあるため、1、5、9、または 2 を「最後の」桁として正当化できます。

于 2013-08-06T16:01:31.240 に答える
0

以下のアプローチに従うことができますが、float 値をあまり大きくしてはならないという制限があります。

void main()
{
int i, m;
float n;
printf("Enter the number n: ");
scanf("%f", &n);
m=(int)n;
i=(m % 10);
printf("last digit = %d", i);
}
于 2015-09-07T18:31:47.183 に答える