输出float类型的变量data时,只显示小数点后3位小数,该怎么表示____(从调用?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了输出float类型的变量data时,只显示小数点后3位小数,该怎么表示____(从调用?相关的知识,希望对你有一定的参考价值。

输出float类型的变量data时,只显示小数点后3位小数,可以用printf("%.3f",x);来表示:

它具有自动四舍五入功能。

参考技术A 回答

float类型的有效数字不是从小数点后面算的。而是从有效数字7位。比如123.12345678,这个有效数字是123.1234是有效数字。而321.23456789有效数值是321.2345,后面的数值就是随机的了。如果是0.0123456789这个的话,要去掉前面的0,所以有效数字是0.01234567。

如何在 SQL Server 中显示小数点后两位数

【中文标题】如何在 SQL Server 中显示小数点后两位数【英文标题】:How to display two digits after decimal point in SQL Server 【发布时间】:2013-12-05 19:45:46 【问题描述】:

我的表在SQL Server 中有一个float 数据类型的列 我想返回我的 float 数据类型列值,小数点后 2 位。

例如:如果我插入12.3,它应该返回12.30

如果我插入12,它应该返回12.00

【问题讨论】:

【参考方案1】:
select cast(your_float_column as decimal(10,2))
from your_table

decimal(10,2) 表示您可以使用最大总精度为 10 位的十进制数。其中小数点后2个,小数点前8个。 可能的最大数字是99999999.99

【讨论】:

非常感谢...它节省了我所有的 C# 代码更改时间。请您解释一下 10 在十进制中的含义(10,2) (10,2) 定义十进制值的精度。逗号后的10 数字和2 数字。 @juergend 嗨,我正在尝试像 select cast(50/20 as decimal(5,2)) from sometable limit 1 这样的简单查询,但输出是 2.00(应该是 2.5)。 @Moosa:因为它会在投射之前进行计算。然后它已经四舍五入到2。只需使用select 50 / 20.0。由于20.0 已经是小数,因此转换按预期工作。见sqlfiddle.com/#!3/9eecb7/8216 @stom:只计算数字。【参考方案2】:

你也可以做一些更短的事情:

SELECT FORMAT(2.3332232,'N2')

【讨论】:

我更喜欢这个 cast(your_float_column as decimal(10,2)) 因为我不知道我的小数有多大。 请注意,这会将类型更改为 NVARCHAR。【参考方案3】:

你也可以使用下面的代码来帮助我:

select convert(numeric(10,2), column_name) as Total from TABLE_NAME

其中Total 是您想要的字段的别名。

【讨论】:

我认为这是做同样事情的另一种方式。 这是一个公平的说法。【参考方案4】:

如果您还想进行投射和回合,也可以使用以下功能。这可能会对您或其他人有所帮助。

SELECT CAST(ROUND(Column_Name, 2) AS DECIMAL(10,2), Name FROM Table_Name

【讨论】:

select cast(round(12311313.1,2) as decimal(10,2)) from dual --> 12311313.1【参考方案5】:
select cast(56.66823 as decimal(10,2))

这将返回56.67

【讨论】:

您对 OP(原始海报)要求的回答是正确的,但不是描述性的。此外,您还发布了一个 4 年前提出的问题,并且正确答案与您的相似,甚至可能更好。最好在旧帖子上回答,但前提是它有一个过时的答案。

以上是关于输出float类型的变量data时,只显示小数点后3位小数,该怎么表示____(从调用?的主要内容,如果未能解决你的问题,请参考以下文章

c语言中输出如何保留x位小数,注意x是变量

C语言问题,float不是保留八位吗,为啥这里要加四个0?

用c语言浮点输出时,如何让小数点后没用的0不显示。

在C#中怎么控制float的值保留小数的位数

c语言如何控制小数位数

c语言如何控制小数位数?