Skip to content

Instantly share code, notes, and snippets.

View hsuh's full-sized avatar
🦕

Hsu Hlaing hsuh

🦕
  • Edinburgh
  • 14:53 (UTC -12:00)
View GitHub Profile
@hsuh
hsuh / gist:f128576cd6e201c6bb9ee508a54958b1
Created February 1, 2017 11:39
Javascript floating point numbers
JavaScript's Math object provides a method for rounding to whole numbers. If we want to round to a set number of decimal places, then we have to handle that ourselves. This post doesn't get into the details of floating-point arithmetic, but the short of it is most programming languages use a binary floating-point representation which can only approximate many decimal fractions. This results in rounding errors for the most common approaches to rounding in JavaScript.
Rounding Errors
The most common solutions for rounding to a decimal place is to either use Number.prototype.toFixed(), or multiply the float by some power of 10 in order to leverage Math.round(). Both of these work, except sometimes a decimal of 5 is rounded down instead of up.
Number((1.005).toFixed(2)); // 1 instead of 1.01
Math.round(1.005*100)/100; // 1 instead of 1.01
A Better Solution
The rounding problem can be avoided by using numbers represented in exponential notation:
@hsuh
hsuh / gist:a30b8d89aa20ebf1f1108d595aea02a9
Created February 2, 2017 11:47
prettifying django print
import yaml
a = [0, 1, ['a', 'b', 'c'], 2, 3, 4]
print yaml.dump(a)
Use /J to create a hard link pointing to a directory, also known as a directory junction:
mklink /J Link Target
e.g mklink /J C:\LinkToFolder C:\Users\Name\OriginalFolder
Use quotes "" around the links if the names have spaces
e.g. mklink /J "C:\Link To Folder" "C:\Users\Name\Original Folder"
source - https://www.howtogeek.com/howto/16226/complete-guide-to-symbolic-links-symlinks-on-windows-or-linux/
Step 1.
Rename C:\code\ifrs17\.git\hooks\prepare-commit-msg.sample
and remove .sample
Step 2.
copy/paste the following bash script into prepare-commit-msg
#!/bin/bash