Лучший способ получить часть целого числа Десятичного числа

Если я правильно понимаю ваш вопрос, то вы пытаетесь нарисовать дополнительную вертикальную линию от черных точек до меток непосредственно над ними, например:

enter image description here

Чтобы добиться этого, вы можете вызвать $svg.line() в функции drawEvent вашего Timeline прототипа следующими параметрами и конфигурацией:

    var newLine = $svg.line(
        x,                // Horizontal offset of the line being drawn
        this.height,      // Height is the vertical height of timeline
        x,                // Re-use "x" to achieve vertical line 
        this.height - 30) // 30 represents the height of newLine
    .attr("stroke", "#000000")
    .attr("stroke-width", 1)
    .appendTo(group);     // Adds this newLine to the current svg group

Для рабочего пример, см. это: https://jsfiddle.net/ygqw2a9j/

77
задан Wai Ha Lee 17 October 2015 в 13:00
поделиться

4 ответа

Путем парни, (международное) Десятичное число. MaxValue переполнится. Вы не можете получить "международную" часть десятичного числа, потому что десятичное число также friggen большое, чтобы вставить международное поле. Просто проверенный... его даже слишком большой для длинного (Int64).

, Если Вы хотите бит Десятичного значения слева от точки, необходимо сделать это:

Math.Truncate(number)

и возвращают значение как... ДЕСЯТИЧНОЕ ЧИСЛО или ДВОЙНОЕ.

редактирование: Усеченный определенно корректная функция!

191
ответ дан 24 November 2019 в 10:47
поделиться

Я думаю Система. Математика. Усеченный то, что Вы ищете.

22
ответ дан Mark Carpenter 24 November 2019 в 10:47
поделиться

Зависит от того, что Вы делаете.

, Например:

//bankers' rounding - midpoint goes to nearest even
GetIntPart(2.5) >> 2
GetIntPart(5.5) >> 6
GetIntPart(-6.5) >> -6

или

//arithmetic rounding - midpoint goes away from zero
GetIntPart(2.5) >> 3
GetIntPart(5.5) >> 6
GetIntPart(-6.5) >> -7

значение по умолчанию всегда - первый, который может быть удивлением, но проявляет очень здравый смысл .

Ваш явный бросок сделает:

int intPart = (int)343564564.5
// intPart will be 343564564

int intPart = (int)343564565.5
// intPart will be 343564566

От пути Вы сформулировали вопрос, он кажется, что это не то, что Вы хотите - Вы хотите поставить в тупик его каждый раз.

я сделал бы:

Math.Floor(Math.Abs(number));

Также проверяют размер Вашего decimal - они могут быть довольно большими, таким образом, Вы, возможно, должны использовать long.

4
ответ дан Keith 24 November 2019 в 10:47
поделиться

Просто необходимо бросить его, как таковой:

int intPart = (int)343564564.4342

, Если Вы все еще хотите использовать его в качестве десятичного числа в более поздних вычислениях, затем Математика. Усеченный (или возможно Математика. Пол, если Вы хотите определенное поведение для отрицательных чисел) функция, которую Вы хотите.

0
ответ дан Noldorin 24 November 2019 в 10:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: