Replace Stata不替换变量值

Replace Stata不替换变量值,replace,stata,Replace,Stata,Stata不会像我命令的那样替换值。发生了什么事? 我有一个变量关闭,它是一个浮动变量(%9.0g) 一个观测值=5.08;这是一个错误,应该是5。 I类型:如果关闭=5.08,则更换关闭=5。 令我惊讶的是,斯塔塔回答说: replace Shutouts=5 if Shutouts==5.08 (0 real changes made) 对于具有相同特征的变量,我有一个类似的问题,名称为Save_perc;一个值是9.2,但应该是.92。这一次,我收到了Stata的回复: replace

Stata不会像我命令的那样替换值。发生了什么事? 我有一个变量<代码>关闭,它是一个浮动变量(%9.0g)

一个观测值=5.08;这是一个错误,应该是5。 I类型:
如果关闭=5.08,则更换关闭=5。
令我惊讶的是,斯塔塔回答说:

replace Shutouts=5 if Shutouts==5.08
(0 real changes made)
对于具有相同特征的变量,我有一个类似的问题,名称为
Save_perc
;一个值是9.2,但应该是.92。这一次,我收到了Stata的回复:

replace Save_perc=.92 if Save_perc==9.2
(0 real changes made)
为什么“0真正的变化”


这似乎是一个很平常的问题,但我已经研究了30年了,我真的无法解决它。

这与浮点数如何存储到内存有关。比较两种不同的数字格式时,不应使用
==
,因为某些内部存储近似值可能会导致比较失败

在你的情况下,你应该使用

Shutouts=5 if Shutouts > 5.07 


欢迎来到StackOverflow。请看一看这些关于如何制作一个新产品的提示。也许下面的提示也值得一读。例如,您的问题中没有包含错误消息。请这样做。谢谢,我忘了键入一些相关信息。太好了!它工作得很好!我认为这是与数据格式有关的问题,但我无法确定问题出在哪里。再次非常感谢!(很抱歉,由于我在StackExchange平台这一章的分数很低,我还不能投票支持你)这与Stata意义上的格式无关,即显示格式。这完全与精确性有关<代码>搜索精度
查找文档。嘿,尼克,是的,我是说精度
  Shutouts=5 if Shutouts == float(5.07)