gpt4 book ai didi

Python,将 float 转换为整数

转载 作者:行者123 更新时间:2023-12-01 01:50:33 26 4
gpt4 key购买 nike

好的,我知道这个问题经常被问到,但通常得到的答复都是特殊情况的解决方法。我想你可能会说,除了如何让它工作之外,我还试图理解为什么这行不通。

# ---- Find Spring Rate ---- #
import math
import numpy as np
from pylab import plot, show, title, xlabel, ylabel, axis
import matplotlib as mpl
from matplotlib import pyplot as plt
'''
F = Load
D = mean dia of Coil
d = wire dia
Na = # of active coils
G = Shear Modulus
'''
F = 30 #lbf Assumed load
D = 0.423 #in Measured
d = 0.055 #in Measured
#N_a = 2.75
G = 11.85*10**(6) #psi # pg 526 Table 10-5 - Machine Theory Book
E = 29.0*10**(6) #psi # pg 526 Table 10-5 - Machine Theory Book

X1 = []
Y1 = []

for N_a in range(1,6,0.025):
y = (8*F*D**(3)*N_a)/(d**(4)*G)
k = (d**(4)*G)/(8*D**(3)*N_a)
K=(F//y)
# print("N_a =", N_a)
# print("y=", y)
# print("k=", k)
# print("K=", K)
# print('\n')
X1.append(N_a)
Y1.append(k)

print("X1=", X1)
print("Y1=", Y1)

当我运行此代码时,我得到以下内容

Spring_Rate_Mk1.py", line 25, in <module>
for N_a in range(1,6,0.025):
TypeError: 'float' object cannot be interpreted as an integer

我尝试过的:

  1. np.arange()这似乎有效,但它给了我像 X 这样的值
X1= [1.0, 1.025, 1.0499999999999998, 1.0749999999999997, 1.0999999999999996, 1.1249999999999996, 1.1499999999999995, 1.1 749999999999994、1.1999999999999993、1.2249999999999992、...等等]

  • 我已经尝试过 N_a = int(N) 以及 int 几乎任何我能想到的地方
  • 我尝试将除法从/更改为//
  • 将方程式分解为多个部分

    A = (d**(4)*G)
    B = (8*D**(3)*N_a)
    k = A/B
  • 最佳答案

    np.arange 有效,您只是看到 float 的表示形式。

    并且 range 不适用于浮点步骤,但在您的情况下,这很容易修复,因为起点和终点实际上是整数。

    如果没有arange,您可以使用整数范围并除以该值,因为1/0.02540,只需将您的范围乘以40 并随后应用除法(仅在 python 2 的情况下使用 40.0)

    for N_a in range(40,240):
    N_a /= 40.0
    print(N_a)

    打印:

    1.0
    1.025
    1.05
    1.075
    1.1
    1.125
    1.15
    1.175
    1.2
    1.225
    1.25
    1.275
    1.3
    1.325
    1.35

    依此类推...除以10的倍数和2的幂使得结果没有表示错误。

    关于Python,将 float 转换为整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50761205/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com