当前位置: 首页 > 知识库问答 >
问题:

将双精度转换为双精度,小数点后加一位?

子车煌
2023-03-14

我想用一个小数点和一个小数位的格式将任何双精度四舍五入为双精度,这样29575.347434将是2.3。

我试着用decimalFormat做这个,但当我试着我只得到了一个29575.3格式的字符串,带有一个,我不知道如何在保留值为双精度的同时去掉所有小数点。

共有3个答案

晏兴发
2023-03-14

尝试以下操作:

Number(parseFloat(29575.347434).toFixed(1))

您还可以传递一个字符串,因为parseFloat()会将其转换为数字,然后将其转换为所需的十进制(再次输出为字符串),然后通过函数number()将其转换回十进制。

对我有用。

梁丘波鸿
2023-03-14

可以通过使用模运算符%来实现这一点。

看起来您的十进制格式正在使用#。#。这将给出整数和小数点后一位。然后你可以做你的号码29575.3%10,得到5.3。

尝试以下代码并查看:

System.out.println(29575.3d % 10);
公良征
2023-03-14

您可以将数字获取为String,获取第一位数字和'.'之后的数字。对于非负数,将是

String s = Double.toString(29575.347434);
double d = Double.parseDouble(s.charAt(0) + "." + s.charAt(s.indexOf('.') + 1));
System.out.println(d); // 2.3

如果数字可以是负数,则必须更正代码中可能出现的减号。

 类似资料:
  • 我试图得到一个double(由两个int的分数得到)作为我下面函数的返回值。 但结果总是错的,我得到的价值如: 预期结果应介于和 我的代码有什么问题! 谢谢

  • 我是Matlab新手,所以这应该是一个简单的问题。我有一个带有几个特定像素的图像,我需要从中获取红色RGB分量,求和,并将结果存储到一个变量中。默认情况下,这些值的类型为uint8,因此总和不能超过255。我尝试使用double()的每个组合将R值转换为double,但似乎没有任何效果。下面是从终端复制的实际情况:(所有像素的R值都在200以上) 我做错了什么?我不能将这些值转换为双精度值吗?

  • 我需要将字符串值转换为带点的双精度值。下面是简单的代码 当我给出10000或100000这样的值时,它是有效的。帮助我克服这个问题。

  • 问题内容: 应该很容易。我本来是用javascript来做的,但是在设置我的处理程序页面中的表单之前必须先做。无论如何,我需要使这些值具有2个小数位。Ex 219333.5888888必须为219333.58。有修剪功能或其他功能吗? 问题答案: 这是格式化十进制值的简单示例

  • 我还是一名学生,刚开始学习java编程语言,我只是想问一下如何将函数main中的参数从字符串转换为double,就像将字符串转换为整数一样。pasreInt(arg)

  • 问题内容: 我有一个双,其值是10,000,000.00(千万)。我必须将其转换为。当使用该方法时,我会得到 “ 1.0E7”,它遵循规范是正确的。不幸的是,我需要“ 10,000,000.00”(或等价的语言,具体取决于语言环境)。 如何做到这一点? 问题答案: 尝试之一 NumberFormat http://java.sun.com/javase/6/docs/api/java/text/N