有没有办法打印出双精度的小数部分,
我的双号,
4734.602654867
Run Code Online (Sandbox Code Playgroud)
我只想要6026
它。
有一个truncate()
double 类型的函数,它返回整数部分,丢弃小数部分。我们可以从原始双精度数中减去它以获得分数。
double myDouble = 4734.602654867;
double fraction = myDouble - myDouble.truncate();
print(fraction); // --> prints 0.602654867
Run Code Online (Sandbox Code Playgroud)
编辑: 如果我们想要小数部分中的 4 位数字,我们可以这样做..
int result = (fraction*10000).truncate();
print(result); // --> prints 6026
Run Code Online (Sandbox Code Playgroud)
要完成所有这一行,我们可以这样做..
int result = ((myDouble - myDouble.truncate())*10000).truncate(); // <-- 6026
Run Code Online (Sandbox Code Playgroud)
就像是
import 'dart:math' show pow;
var number = 4734.602654867;
var wantedDigits = 4;
var fraction = (number % 1 * pow(10, wantedDigits)).floor();
print(fraction);
Run Code Online (Sandbox Code Playgroud)
应该管用。
你可以使用split()
像这样..
var s = 4734.602654867;
var a = s.toString().split('.')[1]. substring(0,4); // here a = 6026
Run Code Online (Sandbox Code Playgroud)
希望它能解决您的问题..
归档时间: |
|
查看次数: |
1709 次 |
最近记录: |