Python将小数位限制为特定位置(不是圆形)

时间:2017-05-25 18:32:14

标签: python pandas numpy decimal

我想将限制小数位数放到特定位置(不是圆形)。例如1.5551.55而不是1.56。使用pandas还是numpy是不是更好/内置的方式?这是我能想到的唯一方法。

import numpy as np

a = np.array([1.555, 2.559])

precision = 2
adj = 10 ** precision
np.floor(a * adj) / adj

array([ 1.55,  2.55])

3 个答案:

答案 0 :(得分:3)

使用数组,您不想使用字符串格式化方法。

SELECT DISTINCT (CourseChair)
FROM Courses
WHERE CourseChair IN 
    (
        SELECT DISTINCT (Member1)
        FROM Courses
        WHERE Member1 IN 
        (
            SELECT DISTINCT (Member2)
            FROM Courses
            WHERE Member2 IN 
            (
                SELECT DISTINCT (Member3)
                FROM Courses
            )
        )
    )

因为花车不准确,你可能会遇到一些错误的错误。结果,截断值将被数字偏移的结果。

一个小小的后卫'值可能就足够了(如果某些值为负值,则必须是具有相应正负值的数组):

In [175]: a = np.array([1.555, 2.559])
In [176]: a*100
Out[176]: array([ 155.5,  255.9])
In [177]: (a*100).astype(int)
Out[177]: array([155, 255])
In [178]: (a*100).astype(int)/100
Out[178]: array([ 1.55,  2.55])

一个有点人为的保护值测试案例:

In [179]: (a*100+.01).astype(int)/100
Out[179]: array([ 1.55,  2.55])

答案 1 :(得分:1)

拆分号码。使用n-int(n)获取小数部分并将其转换为字符串,截断,返回浮点数。添加到int部分。

<ion-list>
<ion-item *ngFor="let place of places ; let i  = index" 
  (click)="onOpenPlace(place)">{{ place.title }}
</ion-item>
  <button ion-button color="danger" (click)="deletePlace(i)">Delete</button>
</ion-list>

返回

553.98

答案 2 :(得分:0)

你可以用脏的方式做到:

val = 12.5555

sVal = str(val)

i = sVal.index('.')

val = float(sVal[0:i] + sVal[i:i+3])

print(val)

Live demo